package com.bbva.gptf.front.web;

import java.math.BigDecimal;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import com.bbva.gptf.dto.bean.ConfiguracionVista;
import com.bbva.gptf.dto.bean.Usuario;
import com.bbva.gptf.dto.servicio.personalizar.ServicioConfiVista;

@RequestMapping("/controladorvistapersonalizada/**")
@Controller
public class ControladorVistaPersonalizada {

	@Resource(name = "servicioConfiVistaHttpHTTPClient")
	private ServicioConfiVista servicioConfiVista;

	@RequestMapping(value = "/obtenerConfigVista", method = RequestMethod.GET)
	public ModelAndView obtenerConfigVista(
			@RequestParam("cdVista") final int cdVista,
			final HttpServletRequest request) {
		final Usuario usuario = (Usuario) request.getSession().getAttribute(
				"usuario");
		ConfiguracionVista configuracionVista = servicioConfiVista
				.obtenerConfiguracionVista(usuario.getCdUsuario(),
						new BigDecimal(cdVista));
		return new ModelAndView(
				"controladorvistapersonalizada/configuracionVista",
				"configuracionVista", configuracionVista);
	}

	@RequestMapping(value = "/guardarConfivista", method = RequestMethod.POST)
	public @ResponseBody
	boolean guardarConfiVista(
			@ModelAttribute("configuracionVista") final ConfiguracionVista configuracionVista,
			final HttpServletRequest request) {
		boolean resultado = false;
		try {
			resultado = servicioConfiVista
					.guardarConfiguracionVista(configuracionVista);
			return resultado;
		} catch (Exception ex) {
			return false;
		}
	}

}
